package strategy;

import java.util.List;

import jugadores.Jugador;
import jugadores.Posicion;
import jugadores.Titular;
import equipos.Equipo;
import equipos.Formacion;

public class FormacionStrategyImpl implements FormacionStrategy {
    /* VARIABLES DE INSTANCIA */
    private List<Posicion> posiciones;

    private Formacion form;

    /* CONSTRUCTOR */

    public FormacionStrategyImpl(final List<Posicion> pos) {

        this.posiciones = pos;

    }

    /* METODOS */
    public Formacion armarFormacion(final Equipo equipo) {
        this.form = new Formacion(equipo);
        Jugador j;
        for (Posicion p : this.posiciones) {
            j = equipo.mejorJugador(p);
            equipo.removerJugador(j);
            this.form.agregarTitular(new Titular(j, p));
        }
        this.form.agregarSuplentes(equipo.getJugadores());
        return this.form;
    }

}
